Skip to content

docs(images): re-record the demo GIF from a scripted walkthrough#424

Merged
haksungjang merged 1 commit into
mainfrom
docs/demo-gif-automation
Jul 17, 2026
Merged

docs(images): re-record the demo GIF from a scripted walkthrough#424
haksungjang merged 1 commit into
mainfrom
docs/demo-gif-automation

Conversation

@haksungjang

Copy link
Copy Markdown
Member

Why

docs/images/web-ui-demo.gif (the README hero) was a hand recording from Jun 26 — it predates the regulatory crosswalk, the license classification axis, and the current New scan form, and as a manual artifact it rots silently on every UI change. This was the last remaining item from the screenshot-freshness work (#416 noted it as a manual follow-up).

What

  • tests/ui/record-demo.spec.ts (@demo, excluded from test:ui): drives a stubbed scan through the same walkthrough the old GIF showed — New scan (typed identity), Overview, Components + "Has vulnerabilities" filter, Vulnerabilities with the critical CVE expanded, Dependencies as graph then tree, Licenses — and records a 900×563 video. The stub data exercises the current UI, including the copyleft classification axis and EPSS/KEV fields.
  • Recorded in the same pinned Playwright container as the guide screenshots (font parity); converted with an ffmpeg palette pass (fps 8, 192 colors). Exact commands live in the spec header; npm run demo:record is the entry point.
  • New GIF: 900×562, ~2.5 MB (the old one was 135 KB but showed a fraction of the product and a stale UI). Key frames visually inspected.

Verification

  • Spec passes locally and in the pinned container (1/1)
  • test:ui exclusion verified (--list shows 0 demo tests); full suite unaffected
  • Extracted frames reviewed: Overview (counts, needs-attention, severity + license axes), Dependencies tree with severity marks — crisp at the final palette settings

The README demo GIF was a hand recording from June 26 and predated the
regulatory crosswalk, license classification, and current New scan
form. Hand recordings also rot silently every time the UI moves.

Replace it with a reproducible recording: a @demo-tagged Playwright
spec drives a stubbed scan through the walkthrough the old GIF showed
(New scan, Overview, Components with a filter, Vulnerabilities with an
expanded CVE, Dependencies as graph then tree, Licenses), records the
video in the same pinned container as the guide screenshots, and an
ffmpeg palette pass converts it to the committed GIF. The stub data now
exercises the current UI, including the license classification axis.
`npm run demo:record` re-records; the exact container and ffmpeg
commands are in the spec header. The spec is excluded from test:ui.
@haksungjang
haksungjang merged commit fdeb250 into main Jul 17, 2026
37 checks passed
@haksungjang
haksungjang deleted the docs/demo-gif-automation branch July 17, 2026 00:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant